package com.shuyuansystem.dao;

import com.shuyuansystem.pojo.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

@Mapper
public interface ProductMapper {
    List<Product> getAllproduct();
    /**
     * 根据查询条件分页查询产品列表
     * @param queryString 查询条件
     * @return 产品列表
     */
    List<Product> findByCondition(@Param("queryString") String queryString);

    /**
     * 查询符合条件的总记录数
     * @param queryString 查询条件
     * @return 总记录数
     */
    Long findTotal(@Param("queryString") String queryString);

    /**
     * 根据产品 ID 获取产品名称
     * @param productId 产品 ID
     * @return 产品名称
     */
    String getProductNameById(Integer productId);
    /**
     * 根据产品 ID 获取产品价格
     * @param productId 产品 ID
     * @return 产品价格
     */
    BigDecimal getProductPriceById(Integer productId);
    Integer getProductIdByName(String productName);
    // 新方法：根据 product_id 列表查询产品信息
    List<Product> getProductsByProductIds(List<Integer> productIds);

    // 新方法：根据 product_id 列表分页查询产品信息
    List<Product> getProductsByProductIdsWithPagination(@Param("productIds") List<Integer> productIds, @Param("offset") int offset, @Param("pageSize") int pageSize);

    // 新方法：根据 product_id 列表统计总记录数
    Integer getTotalCountByProductIds(@Param("productIds") List<Integer> productIds);
    // 根据商品 ID 查询商品信息
    Product getProductById(Integer productId);
    // 更新商品信息
    int updateProduct(Product product);
    // 删除商品信息
    int deleteProduct(Integer productId);
    int addProduct(Product product);

    //根据Productid获取对应的product
    Product getByProductId(String productId);
}